package com.softtown.modules.sys.dao;

import com.softtown.common.dao.BaseDao;

import com.softtown.modules.sys.entity.CompSysRoleUserEntity;
import com.softtown.modules.sys.entity.CompSysUserEmplEntity;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 公司角色用户
 *
 * @author Dingyayong
 */
@Mapper
public interface CompSysRoleUserDao extends BaseDao<CompSysRoleUserEntity> {

    /**
     * 根据角色id 找出相应数据
     *
     * @param roleId
     * @return CompSysRoleUserEntity
     * @author Dingyayong
     * @date 2019/6/17 10:15
     */
    List<CompSysRoleUserEntity> getByRoleId(Long roleId);

    /**
     * 根据公司id，用户id 找出相应数据
     * @param compId
     * @param userId
     * @return java.util.List<java.lang.Long>
     * @Author fuming
     * @Date 2020/5/26 17:35
     */
    List<Long> getRoleIdList(@Param("compId") Long compId, @Param("userId") Long userId);

    /**
     * 根据公司id，用户id roleId 找出相应数据
     * @param compId
     * @param roleId
     * @param userId
     * @return com.softtown.modules.sys.entity.CompSysRoleUserEntity
     * @Author fuming
     * @Date 2020/5/26 17:35
     */
    CompSysRoleUserEntity getRoleUserEntity(@Param("compId") Long compId, @Param("roleId") Long roleId, @Param("userId") Long userId);

    /**
     * 更新
     *
     * @param compSysRoleUserEntity CompSysRoleUserEntity
     *
     * @author Dingyayong
     * @date 2019/6/17 10:15
     */
    void updateRoleUserInfo(CompSysRoleUserEntity compSysRoleUserEntity);

    /**
     * 根据角色id和公司id查找相应的数据
     * @param  roleId
     * @param  compId
     * @return CompSysRoleUserEntity
     * @author Dingyayong
     * @date 2019-06-22 20:40
     */
    List<CompSysRoleUserEntity> getCompSysRoleUserListByCompIdAndRoleId(@Param("roleId") Long roleId, @Param("compId") Long compId);

    /**
     * 根据用户Ids获取用户信息
     * @param ids
     * @param param
     * @param compId
     * @param roleId
     * @return java.util.List<com.softtown.modules.sys.entity.CompSysUserEmplEntity>
     * @Author fuming
     * @Date 2020/5/26 17:36
     */
    List<CompSysUserEmplEntity> getRoleUserListByIds(@Param(value = "list") List<Long> ids, @Param(value = "param") String param, @Param(value = "compId") Long compId, @Param(value = "roleId") Long roleId);

    /**
     * 根据roleId、userId、compId查到单条数据
     * @param  roleId
     * @param  compId
     * @param  userId
     * @return CompSysRoleUserEntity
     * @author Dingyayong
     * @date 2019-06-24 10:04
     */
    CompSysRoleUserEntity selectCompRoleUserByRoleIdCompIdUserId(@Param(value = "roleId") Long roleId, @Param(value = "compId") Long compId, @Param(value = "userId") Long userId);

    /**
     * 根据角色id 找出相应数据
     *
     * @param compId
     * @param userId
     * @return CompSysRoleUserEntity
     * @author Dingyayong
     * @date 2019/6/17 10:15
     */
    List<CompSysRoleUserEntity> getRoleInfo(@Param("compId") Long compId, @Param("userId") Long userId);

    /**
     * 删除公司的角色用户
     * @param compSysRoleUserEntity
     * @return java.lang.Integer
     * @Author fuming
     * @Date 2020/5/26 17:36
     */
    Integer deleteRoleUserInfo(CompSysRoleUserEntity compSysRoleUserEntity);
}
